home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / print / hpgl2ps.zip / TEXTPS.C < prev    next >
C/C++ Source or Header  |  1989-08-08  |  2KB  |  119 lines

  1. /* textps.c */
  2. #include "defn.h"
  3.  
  4. #define MAXBUFSIZE 100
  5.  
  6. textps(type)
  7. int     type;
  8. {
  9.     char    string[4];
  10.     char    buffer[MAXBUFSIZE];
  11.     float   Xch, Ych;
  12.     int        intval;
  13.     int     i;
  14.  
  15.     end_draw();
  16.  
  17.     if (type == TEXT)
  18.     {
  19.     for (i = 0 ; i < MAXBUFSIZE; i++)    /* Clear buffer */
  20.         buffer[i] = NULL;
  21.  
  22.     i = 0;                    /* Reset buffer counter */
  23.  
  24.     while (((ch = getc(stream)) != EOF)
  25.             && ch != CR && ch != LF && ch != EOL) {
  26.         buffer[i++] = ch;
  27.     }
  28.  
  29.     printf("%g %g 1 %g (%s) Text\n", absX, absY, char_angle, buffer);
  30.  
  31.     /* move to end of string */
  32.     absX += (i * (char_space)) * cos(char_angle * deg_rad) ;
  33.         absY += (i * (char_space)) * sin(char_angle * deg_rad) ;
  34.  
  35.     } else            /* Must be a MARK */
  36.     {
  37.     int     symb_num;
  38.  
  39.     if (SIGNED_NUMERIC)
  40.         symb_num = getval();
  41.     else
  42.     {
  43.         fprintf(stderr,
  44.             "Error: expecting a symbol number not %c (%d)",
  45.             symb_num, symb_num);
  46.         exit(1);
  47.     }
  48.     intval = (int)(getval() + 0.5);
  49.     switch (intval)
  50.     {
  51.     case 0:
  52.         strcpy(string, "*");
  53.         break;
  54.  
  55.     case 1:
  56.         strcpy(string, "+");
  57.         break;
  58.  
  59.     case 2:
  60.         strcpy(string, "#");
  61.         break;
  62.  
  63.     case 3:
  64.         strcpy(string, "@");
  65.         break;
  66.  
  67.     case 4:
  68.         strcpy(string, "%");
  69.         break;
  70.  
  71.     case 5:
  72.         strcpy(string, "|");
  73.         break;
  74.  
  75.     case 6:
  76.         strcpy(string, "=");
  77.         break;
  78.  
  79.     case 7:
  80.         strcpy(string, "&");
  81.         break;
  82.  
  83.     case 9:
  84.         strcpy(string, "O");
  85.         break;
  86.  
  87.     case 10:
  88.         strcpy(string, "0");
  89.         break;
  90.  
  91.     case 11:
  92.         strcpy(string, "Y");
  93.         break;
  94.  
  95.     case 12:
  96.         strcpy(string, "X");
  97.         break;
  98.  
  99.     case 13:
  100.         strcpy(string, "Z");
  101.         break;
  102.  
  103.     case 14:
  104.         strcpy(string, "S");
  105.         break;
  106.  
  107.     case 15:
  108.         strcpy(string, "Q");
  109.         break;
  110.  
  111.     default:
  112.         fprintf(stderr, "Warning symbol number is %d\n", symb_num);
  113.         strcpy(string, "*");
  114.         break;
  115.     }
  116.     printf("%g %g 5 %g (%s) Text\n", absX, absY, char_angle, string);
  117.     }
  118. }
  119.